The present disclosure relates to object replication and, more particularly, to a system and method for restoring a database in a distributed database system.
In a distributed database system, databases on a database server are replicated and located on different servers in a distributed manner. Replication refers to a process by which data objects existing on a server are created on another server and made consistent with the originals. Various methods of replication have been proposed. One such proposal includes a store and forward method of replication in which each server keeps track of locally made changes to a particular copy of a data set (sometimes referred to as a “replica”) which contains one or more data objects. Each server periodically broadcasts the new locally made changes (since the last replication broadcast) to all other related servers. Such locally made changes may include the creation of new data, modification of existing data, or deletion of existing data. The group of other servers also having a copy of the data set are kept on a “replica list.” The changes are preferably broadcast in the form of updated copies of the changed data objects. This allows each server to update its local copy of the data set as changes are received by replacing the older data objects with the newer data objects.
As with any computer system, the distributed database system is vulnerable to data corruption or interruption which may leave the databases in disarray. The nature of the distributed database system is such that information may be stored on multiple servers located in multiple geographical locations. As such, data corruption on one server may affect the data integrity on multiple servers. Although it is extremely important to avoid data corruption, it is more important, when the corruption is unexpected or unavoidable, to remedy the consequence and minimize the damage caused by the data corruption by recovering the corrupted data in a complete and speedy fashion.
In the computer network, on top of the operating system layer, a cross-platform and scalable directory software system (or in short, “directory”) is desirable and used for managing identities that span across the network. One example of such a directory is eDirectory provided by Novell, Inc. of Provo, Utah. Such a directory is very important for the operation of the computer network, and therefore the backup or restoration of this directory needs to be complete and in a timely fashion.
What is needed is an enhanced method and system to restore a corrupted database on a server in the distributed database system and ensure that the restored database is in synchronization with other databases of the distributed database system.